<HTML><HEAD><TITLE>tent_call(+In, +Out, +Goal)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(repair)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>tent_call(+In, +Out, +Goal)</H1>
Eagerly call Goal whenever tentative values of variables in In changes.
<DL>
<DT><EM>In</EM></DT>
<DD>List of variables (subset of variables in Goal)
</DD>
<DT><EM>Out</EM></DT>
<DD>List of variables (subset of variables in Goal)
</DD>
<DT><EM>Goal</EM></DT>
<DD>Goal to be called
</DD>
</DL>
<H2>Description</H2>
<P>
This is a completely general meta-predicate to support computations
with tentative values. Goal is a general goal, and In and Out are
lists (or other terms) containing subsets of Goal's variables.
A copy of Goal is called, with the In-variables replaced by their
tentative values and the Out-variables replaced by fresh variables.
Goal is expected to return values for the Out variables. These values
are then used to update the tentative values of the original Out variables.
This process repeats whenever the tentative value of any In-variable
changes.
</P>

<H3>Modules</H3>
This predicate is sensitive to its module context (tool predicate, see @/2).
<H2>See Also</H2>
<A HREF="../../lib/repair/tent_set-2.html">tent_set / 2</A>, <A HREF="../../lib/repair/tent_is-2.html">tent_is / 2</A>
</BODY></HTML>
